package kz.pompei.OneGwt.remote;

import java.util.List;
import java.util.Set;

import kz.pompei.OneGwt.cmodel.PersonDetails;
import kz.pompei.OneGwt.cmodel.PersonRecord;
import kz.pompei.OneGwt.cmodel.SimpleRecord;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface PersonroleManagerServiceAsync {
  
  void getPersonList(AsyncCallback<List<PersonRecord>> callback);
  
  void getPersonDetails(String personId, AsyncCallback<PersonDetails> callback);
  
  void savePerson(PersonDetails details, AsyncCallback<PersonRecord> callback);
  
  void getApplicationList(AsyncCallback<List<SimpleRecord>> callback);
  
  void getRoleList(String applicationId, AsyncCallback<List<SimpleRecord>> callback);
  
  void getRoleIds(String personId, String applicationId, AsyncCallback<Set<String>> callback);
  
  void addRole(String personId, String applicationId, String roleId, AsyncCallback<Void> callback);
  
      void
      deleteRole(String personId, String applicationId, String roleId, AsyncCallback<Void> callback);
}
